package traits

import model.GrupoEmpresas
import model.FichaEmpresa
import scala.collection.mutable.ArrayBuffer
import model.FichaAnonima
import model.EmpresaRegular
import model.Ficha


trait LimitarRegistrosPorAño extends OperacionesCenso {
	self : GrupoEmpresas =>
	  
	 
	  
	  override def empresasConVentasMayoresA(monto: Double) : ArrayBuffer[String] = {
	    this.empresasFiltradas.filter( {e  => this.años.map(e.getFichaByYear(_)).exists(_.montoVentas > monto)}).map(_.nombre)
	  }
	  
	  override def empresasMaxGanancias() : String = {
	    this.empresasFiltradas.maxBy( {e  => this.años.map(e.getFichaByYear(_).montoGanancias).max}).nombre
	  }
	  
	  override def createMapByProvincia(): Map[String, Double] = {
		 val tuplaM = this.empresasFiltradas.map({ e => (e.departamento.nombre, this.años.map(e.getFichaByYear(_).montoVentas).sum) })
		 tuplaM.groupBy(_._1).mapValues({ t => t.map(_._2).sum })
	  }
	  
	  
}